import java.io.*;

/**
 * @作者: xiaoxun
 * @日期: 2025/3/11 15:04
 * @描述: IO流
 */
public class IODemo01 {
	public static void main(String[] args) throws Exception {
		/**IO流：
		 * 概述：
		 * 		I指input，称为输入流，负责把数据读到内存中去。
		 * 		O指output,称为输出流，负责写数据出去。
		 * 	应用场景：
		 * 		*/

		//1、文件字节输入流
		InputStream file1=new FileInputStream("Day09/src/xiaoxun.txt");
//		int a1=file.read();//每次读取一个字节
//		System.out.println(a1);
//		System.out.println((char) a1);
//		System.out.println(file.read());
//		System.out.println((int) file.read());
		//2、使用循环读取
		int b=0;
		while ((b=file1.read()) !=-1){
			char c=(char) b;
			System.out.print(c);
		}
		System.out.println("\n");
		//2、每次读取多个字节
		InputStream file2=new FileInputStream("Day09/src/xiaoxun.txt");
//		byte[] buffter=new byte[40];
//		int len1=file2.read(buffter);
//		System.out.println(len1);
//		System.out.println(new String(buffter));
//
//		int len2=file2.read(buffter);
//		System.out.println(len2);
//		System.out.println(new String(buffter,len2));
		int len=0;
		byte[] buffter=new byte[4];
		while ((len=file2.read(buffter)) !=-1){
			System.out.print(new String(buffter,0,len));
		}
		System.out.println("\n");
		//一次读取全部字节
		InputStream file3=new FileInputStream("Day09/src/xiaoxun.txt");
		File fililen=new File("Day09/src/xiaoxun.txt");

		byte[] buff=new byte[(int) fililen.length()];
		System.out.println("文件大小："+fililen.length());
		int len2=file3.read(buff);
		System.out.println("读取的字节："+len2);
		System.out.println(new String(buff));
		//jDK自带api
		InputStream file4=new FileInputStream("Day09/src/xiaoxun.txt");
		byte[] buff1=file4.readAllBytes();
		System.out.println(new String(buff1));


		//字节输出流
//		FileOutputStream(File file); //创建字节流输出管道与源文件对象接通
//		FileOutputStream(String filepath);//创建字节流输出管道与源文件路径接通
//		FileOutputStream(File file,boolean append);////创建字节流输出管道与源文件对象接通，可加数据
//		FileOutputStream(String filepath,boolean append)//创建字节流输出管道与源文件路径接通，可加数据
	OutputStream os1=new FileOutputStream("Day09/src/xiaoyang.txt",true);
		//每次写出去一个字节
		os1.write('a');
		os1.write(97);
		os1.write(' ');
		os1.write("\r\n".getBytes());
		byte[] bytes="abc我爱你中国666".getBytes();
		os1.write(bytes);
		os1.write("\r\n".getBytes());
		os1.write(bytes,3,15);
		os1.close();//关闭输出流


	}
}
